<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jdbc-api</title>
    <style>
        body {
            background-color: #c7edcc
        }
    </style>
</head>
<body>
<pre>
    1.驱动加载?
        在jdbc4之前需要使用Class.forName("com.org.mysql.Driver");显示加载驱动,完成的功能就是在Driver中执行一个static快,向DriverManager中注册一个驱动实现的实例,
    在JDBC4之后,jar保重META-INF中包含services目录,下面定义了驱动path,jdbc驱动管理启初始化时,使用ServiceLoader扫描classpath,查找META-INF/services/包名字 里面
    的内容,然后实例化文件中定义类, 这里有点类似spring通过配置文件来创建对象.


    2.类加载器机制?
        因jdbc接口在java核心包中定义,而驱动实现由第三方提供,比如在使用DriverManager的时候,加载DriverManager的代码的加载器为引导类加载器,当使用类路径来注册驱动的时候
    引导类加载器没法加载第三方驱动类的,所以引入了线程上下文加载器,通过Thread.currentThread().getContextClassLoader()可以获得,程序启动时如果该值没有被设置过,那么就为
    appClassLoader,当显示的注册驱动时并没有直接使用到线程上下文加载器,
</pre>
</body>
</html>